#pragma once

#include <libwebsockets.h>
#include <nlohmann/json.hpp>
#include <string>
#include <memory>

/**
 * @class MessageHandler
 * @brief 消息处理器基类
 * @details 定义了所有消息处理器必须实现的接口
 */
class MessageHandler {
public:
    virtual ~MessageHandler() = default;
    
    /**
     * @brief 处理消息
     * @param wsi WebSocket实例
     * @param data 消息数据
     */
    virtual void handle(struct lws *wsi, const nlohmann::json& data) = 0;
                       
    /**
     * @brief 获取处理器能处理的消息类型
     * @return std::string 消息类型
     */
    virtual std::string getType() const = 0;
}; 